package com.skiving.cloud.admin.service;

import com.mybatisflex.core.paginate.Page;
import com.skiving.cloud.common.utils.PageParameter;
import com.mybatisflex.core.service.IService;
import com.skiving.cloud.admin.entity.SysMenu;

import java.util.List;

/**
 * 菜单管理 服务层。
 *
 * @author skivingcloud
 * @since 2025-03-08
 */
public interface SysMenuService extends IService<SysMenu> {
    /**
     * 分页查询菜单管理
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<SysMenu> queryByPage(PageParameter<SysMenu> parameter);

    /**
     * 查询树形菜单
     * @return 树形菜单
     */
    List<SysMenu> getMenuList();

    /**
     * 查询租户有权限的资源树
     * @param tenantId 租户ID
     * @return 树形菜单
     */
    List<SysMenu> getTenantMenuList(String tenantId);
}
